Streaming video over data networks (e.g., the Internet) has become increasingly popular as the availability of high-bandwidth Internet connections has increased. Video streaming refers to a type of video delivery mechanism where the data for the video is continuously delivered to a client electronic device over a data network (e.g., the Internet) as the user is viewing the video. Video streaming allows a user to start viewing portions of the video without having to first download the entire video. In fact, it is common to implement video streaming such that the client electronic device only buffers a threshold amount of the video following (and usually preceding) the user's current viewing position in the video.
Most media player applications provide a graphical user interface (GUI) that allows a user to navigate to a desired time position in the video (sometimes referred to as seeking or a seek operation). The GUI may facilitate navigation by allowing a user to see a preview of the video at various time positions in the video in the form of thumbnails. A thumbnail is typically a reduced-sized version of a video frame at a particular time position in the video (in other words, a version that requires less storage space for a variety of possible reasons—such as greater compression and reduced resolution relative to the video). Thumbnails help the user identify the part of the video that the user is interested in watching. For example, during playback of a video a user may use an input mechanism to see thumbnails corresponding to different time positions in the video (e.g., the user uses a mouse to cause the cursor to hover over different points on the horizontal navigation bar to see thumbnails associated with different time positions in the video). This helps the user identify the content at various time positions in the video. The user may then select one of the thumbnails (or the point in the navigation bar corresponding to the thumbnail) to seek (jump) to the time position associated with the thumbnail. In this way, the user may use the navigation bar to navigate to the desired time position in the video. The thumbnails can be thought of as serving as an index into the video.
With traditional video navigation GUIs such as the one described above, the size of the display area used to display a thumbnail is typically relatively small as compared to the entire display area, making it difficult to see the details of the thumbnail. Also, since the size of the horizontal navigation bar is limited by the width of the display screen (or part thereof being used to display the video), the ability of the user to use the input mechanism to select a desired time position in the video from which playback should begin may be awkward, difficult, or not possible (in other words, the user's desired level of granularity in selecting a starting time position for playback may be finer than the level of granularity actually provided). For example, the time increments in the video corresponding to each thumbnail may be relatively long as compared to the user's desired level of precision when selecting a time position in the video from which playback is to begin, especially for videos that are relatively long in duration. For instance, the shortest time increment between thumbnails displayed over the navigation bar might be as long as 15-20 seconds. Independent of or in addition to relatively long time increments, a limitation on the width of the display area within which the horizontal navigation bar is being displayed may (and often does on mobile devices) result in the distance between user selectable points on the horizontal navigation bar corresponding to selectable time positions within the video being too small for the user to use the user controlled selection mechanism to select a desired position in the video (e.g., inputting the desired time position within the video by moving the cursor back and forth over the navigation bar can be awkward and difficult). For instance, the width of the touch screen on a mobile device may force the display area for displaying the horizontal navigation bar to be of a size that makes the distance between user selectable points being too close for a finger on a touch screen user input mechanism to work well (e.g., even if the user can position their finger such that the desired time position is selected, the action of the user lifting their finger to indicate playback should start from that time position can result in selection of a different time position in the video).
Independently, when the user makes a request to seek to a different time position in the video, there may be a noticeable delay between the request and when the video starts playing due to various network and processing delays. During this time, the user is typically presented with a freeze frame of the former playback position (e.g., the frame that the user was at in the video before making the seek request) or a blank screen.